#include <iostream>

using namespace std;

// 该方法把参数的实际值赋值给函数的形式参数。在这种情况下，修改函数内的形式参数对实际参数没有影响。
void Test1(int num){
    num = 22;
}

// 指针调用，该方法把参数的地址赋值给形式参数。在函数内，该地址用于访问调用中要用到的实际参数。这意味着，修改形式参数会影响实际参数。
void Test2(int* num){
    *num = 33;
}

// 引用调用，该方法把参数的引用赋值给形式参数。在函数内，该引用用于访问调用中要用到的实际参数。这意味着，修改形式参数会影响实际参数。
void Test3(int& num){
    num = 44;
}

int main(){
    int num = 10;

    cout << num << endl; // 10
    Test1(num);
    cout << num << endl; // 10
    Test2(&num);
    cout << num << endl; // 33
    Test3(num);
    cout << num << endl; // 44
}